#include <stdio.h>
#include "Gestion_file_attente_patient.h"

void ajouterPatient()
{
   Patient p1, p;
   char chemin[]="fpatient.txt";
   FILE *f ;
   f=fopen (chemin,"a");

   p1=saisir_patient();
   int var=0;
  while ((fscanf(f,"%s %s %d %d",p.nom,p.prenom,&p.age, &p.id) != EOF ))
  {
       if(p1.id ==p.id)
            {
                printf("le patient %d existe \n", p.id);
                var=1;
            }
    }
if(var==0)
{
    fprintf(f,"%s %s %d %d\n",p1.nom,p1.prenom,p1.age, p1.id);
}
    fclose(f);

}


void modifierPatient()
{

    Patient p;
    char chemin[]="fpatient.txt";
    char chemin2[]="fichiertmp.txt";
    int id1;
    FILE *f1;
    FILE *f2;
    f1= fopen(chemin, "r");
    f2=fopen(chemin2,"a");


    printf ("donner l id a modifier\n ") ;
    scanf ("%d",&id1);

    while (fscanf(f1,"%s %s %d %d",p.nom,p.prenom,&p.age,&p.id) != EOF)
    {
        if(p.id ==id1)
        {
            printf ("donner le nom \n ");
            scanf ("%s", p.nom);
            printf ("donner le prenom \n ");
            scanf ("%s", p.prenom);
            printf ("donner l age \n ");
            scanf ("%d",&(p.age));
        }



        fprintf(f2,"%s %s %d %d \n",p.nom,p.prenom,p.age,p.id);
    }
    fclose(f1);
    fclose(f2);
    remove(chemin);
    rename(chemin2,chemin);
}

void supprimerPatient()
{
    Patient p;
    char chemin[]="fpatient.txt";
    char chemin2[]="fichiertmp.txt";
    int id1;
    FILE *f1;
    FILE *f2;
    f1= fopen(chemin, "r");
    f2=fopen(chemin2,"w");

    printf ("donner l id a supprimer\n ") ;
    scanf ("%d",&id1);


    while    (fscanf(f1,"%s %s %d %d",p.nom , p.prenom, &p.age, &p.id) != EOF)
    {
        if(p.id !=id1)
        {

            fprintf(f2," %s %s %d %d\n",p.nom,p.prenom,p.age,p.id);
        }
    }

    fclose(f1);
    fclose(f2);
    remove(chemin);
    rename(chemin2,chemin);
}

void afficherPatient()
{
    Patient p;
    char chemin[]="fpatient.txt";
    FILE *f;
    f=fopen(chemin,"r");
    if(f==NULL){
        printf("Impossible d'ouvrir le fichier! \n");
    }
    else{
        printf("\n\n \tLa Liste des patients\n\nNom     | Prenom       |Age   |Identifiant  \n----------------------------------------------\n");
        while (fscanf(f,"%s %s %d %d",p.nom,p.prenom,&p.age ,&p.id) != EOF)
        {
            printf(" %s | %s | %d | %d \n----------------------------------------------\n",p.nom,p.prenom,p.age,p.id);
        }

    }
    fclose(f);
}

void rechercherPatient()
{   Patient p;
    int x;
    int r=0;
    char chemin[]="fpatient.txt";
    FILE *fichier;
    fichier = fopen(chemin, "r");
    if (fichier==NULL)
    {
        printf("ERREUR\n");

    }
    else
    {
        printf("entrer l identifiant du patient que vous cherchez:\n");
        scanf("%d",&x);
        while(fscanf(fichier,"\n %s %s %d %d \n",p.nom,p.prenom,&p.age, &p.id)!=EOF)
        {
            if(x==(p.id))
            {
                r=1;
                break;
            }
        }

    }
    fclose(fichier);
    if (r==1)
     {printf( "\n %s %s %d %d \n",p.nom,p.prenom,p.age,p.id);}
    else
        {printf( "\n le patient %d que vous cherchez n'existe pas \n", x);}

}
